﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:utils="clr-namespace:EtlViewer.Viewer.UIUtils">
    <utils:NullToVisibilityConverter x:Key="NullToVisibilityConverter"></utils:NullToVisibilityConverter>
    
    <!-- SimpleStyles: MenuItem -->
    <Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="{x:Type Separator}">
        <Setter Property="Height" Value="1"/>
        <Setter Property="Margin" Value="5"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Separator}">
                    <Border BorderBrush="#888888" BorderThickness="1"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <!-- TopLevelHeader -->
    <ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="{x:Type MenuItem}" >
        <Border Name="Border" BorderThickness="1" BorderBrush="{StaticResource WhiteColorBrush}">
            <Grid>
                <ContentPresenter 
                    Margin="6,3,6,3" 
                    ContentSource="Header" RecognizesAccessKey="True" />
                <Popup  Name="Popup" Placement="Bottom"
                        IsOpen="{TemplateBinding IsSubmenuOpen}"
                        AllowsTransparency="True"
                        SnapsToDevicePixels="True"
                        Focusable="False"
                        PopupAnimation="Slide"  
                        >
                    <Border Name="SubmenuBorder" Margin="2,0,2,2"
                              SnapsToDevicePixels="True"
                              Background="{StaticResource WhiteColorBrush}"
                              BorderBrush="{StaticResource GrayBrush8}"
                              BorderThickness="1" >
                        <Border.Effect>
                            <DropShadowEffect ShadowDepth="3" Opacity="0.4"></DropShadowEffect>
                        </Border.Effect>
                        <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                    </Border>
                </Popup>
            </Grid>
        </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="IsSuspendingPopupAnimation" Value="true">
                <Setter TargetName="Popup" Property="PopupAnimation" Value="None"/>
                <Setter TargetName="Popup" Property="AllowsTransparency" Value="True" />
            </Trigger>
            <Trigger Property="IsHighlighted" Value="true">
                <Setter TargetName="Border" Property="Background" Value="{StaticResource HightlightMetroBackground}"/>
                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource GrayBrush8}"/>
                <Setter TargetName="Border" Property="BorderThickness" Value="1"/>
                <!--<Setter TargetName="Border" Property="TextElement.Foreground" Value="{StaticResource WhiteColorBrush}" />-->
                
            </Trigger>
            <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
                <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0"/>
                <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,3,0,3"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Foreground" Value="#888888"/>
            </Trigger>
            <Trigger Property="IsSubmenuOpen" Value="True">
                <Setter TargetName="Border" Property="BorderThickness" Value="1"/>
                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource GrayBrush8}"/>                
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <!-- TopLevelItem -->

    <ControlTemplate 
          x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}" 
          TargetType="{x:Type MenuItem}" >
        <Border Name="Border" >
            <Grid >
                <ContentPresenter 
                    Margin="6,3,6,3" 
                    ContentSource="Header"
                    RecognizesAccessKey="True" />
            </Grid>
        </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="IsHighlighted" Value="true">
                <Setter TargetName="Border" Property="Background" Value="{StaticResource WhiteColorBrush}"/>
                <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource WhiteColorBrush}"/>
                <Setter TargetName="Border" Property="TextElement.Foreground" Value="{StaticResource HighlightBrush}"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Foreground" Value="#888888"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <!-- SubmenuItem -->

    <ControlTemplate 
  x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" 
  TargetType="{x:Type MenuItem}">
        <Border Name="Border"  Background="White">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Icon"/>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
                    <ColumnDefinition Width="13"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition MinHeight="20" />
                </Grid.RowDefinitions>
                <ContentPresenter 
                                Name="Icon"
                                Margin="6,0,6,0"
                                VerticalAlignment="Center"
                                ContentSource="Icon"/>
                <Border 
                                Name="Check"  
                                Width="13" Height="13" 
                                Visibility="Collapsed"
                                Margin="6,0,6,0" 
                                Background="#C0C0C0"
                                BorderThickness="1"
                                BorderBrush="#404040">
                    <Path 
                                  Name="CheckMark"
                                  Width="7" Height="7" 
                                  Visibility="Hidden" 
                                  SnapsToDevicePixels="False" 
                                  Stroke="#404040"
                                  StrokeThickness="2"
                                  Data="M 0 0 L 7 7 M 0 7 L 7 0" />
                </Border>
                <ContentPresenter VerticalAlignment="Center"
                        Name="HeaderHost"
                        Grid.Column="1"
                        ContentSource="Header"
                        RecognizesAccessKey="True"/>
                <TextBlock x:Name="InputGestureText"
                            Grid.Column="2"
                            Text="{TemplateBinding InputGestureText}"
                            Margin="0,2,0,2"
                            Padding="40,0,0,0"
                            DockPanel.Dock="Right" 
                            Visibility="{TemplateBinding InputGestureText, Converter={StaticResource NullToVisibilityConverter}}" />
            </Grid>
        </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="Icon" Value="{x:Null}">
                <Setter TargetName="Icon" Property="Visibility" Value="Hidden"/>
            </Trigger>
            <Trigger Property="IsChecked" Value="true">
                <Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/>
            </Trigger>
            <Trigger Property="IsCheckable" Value="true">
                <Setter TargetName="Check" Property="Visibility" Value="Visible"/>
                <Setter TargetName="Icon" Property="Visibility" Value="Hidden"/>
            </Trigger>
            <Trigger Property="IsHighlighted" Value="true">
                <Setter TargetName="Border" Property="Background" Value="{StaticResource HightlightMetroBackground}"/>
                <!--<Setter TargetName="Border" Property="TextElement.Foreground" Value="{StaticResource HighlightBrush}" />-->
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
                <Setter Property="Foreground" Value="#888888"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <!-- SubmenuHeader -->

    <ControlTemplate 
      x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}" 
      TargetType="{x:Type MenuItem}">
        <Border Name="Border" >
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Icon"/>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
                    <ColumnDefinition Width="13"/>
                </Grid.ColumnDefinitions>
                <ContentPresenter 
                    Name="Icon"
                    Margin="6,0,6,0"
                    VerticalAlignment="Center"
                    ContentSource="Icon"/>
                <ContentPresenter 
                        Name="HeaderHost"
                        Grid.Column="1"
                        ContentSource="Header"
                        RecognizesAccessKey="True"/>
                <TextBlock x:Name="InputGestureText" Grid.Column="2"
                        Text="{TemplateBinding InputGestureText}"
                        Margin="10,2,2,2"
                        DockPanel.Dock="Right"/>
                <Path 
                    Grid.Column="3"
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    Data="M 0 0 L 0 7 L 4 3.5 Z" 
                    Fill="#404040" />
                <Popup 
                    Name="Popup"
                    Placement="Right"
                    HorizontalOffset="-4" 
                    IsOpen="{TemplateBinding IsSubmenuOpen}"
                    AllowsTransparency="True" 
                    Focusable="False"
                    PopupAnimation="Fade">
                    <Border 
                          Name="SubmenuBorder"
                          SnapsToDevicePixels="True"
                          Background="#FFFFFF"
                          BorderBrush="#888888"
                          BorderThickness="1" >
                        <StackPanel  
            IsItemsHost="True" 
            KeyboardNavigation.DirectionalNavigation="Cycle" />
                    </Border>
                </Popup>
            </Grid>
        </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="Icon" Value="{x:Null}">
                <Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
            </Trigger>
            <Trigger Property="IsHighlighted" Value="true">
                <Setter TargetName="Border" Property="Background" Value="#DDDDDD"/>
            </Trigger>
            <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
                <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="4"/>
                <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,3,0,3"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
                <Setter Property="Foreground" Value="#888888"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <!-- MenuItem Style -->

    <Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}" >
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Style.Triggers>
            <Trigger Property="Role" Value="TopLevelHeader">
                <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}"/>
                <Setter Property="Grid.IsSharedSizeScope" Value="true"/>
            </Trigger>
            <Trigger Property="Role" Value="TopLevelItem">
                <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.TopLevelItemTemplateKey}}"/>
            </Trigger>
            <Trigger Property="Role" Value="SubmenuHeader">
                <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/>
            </Trigger>
            <Trigger Property="Role" Value="SubmenuItem">
                <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.SubmenuItemTemplateKey}}"/>
            </Trigger>
        </Style.Triggers>
    </Style>

    <Style TargetType="ContextMenu">
        <Setter Property="SnapsToDevicePixels" Value="True"/>
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Grid.IsSharedSizeScope" Value="true"/>
        <Setter Property="HasDropShadow" Value="True"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ContextMenu">
                    <Border 
          Name="Border"
          Background="{StaticResource WindowBackgroundBrush}"
          BorderBrush="{StaticResource ControlBorderBrush}"
          BorderThickness="1" >
                        <StackPanel IsItemsHost="True"
                      KeyboardNavigation.DirectionalNavigation="Cycle"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="HasDropShadow" Value="true">
                            <Setter TargetName="Border" Property="Padding" Value="0,3,0,3"/>
                            <Setter TargetName="Border" Property="CornerRadius" Value="4"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>